home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / BARNET / FREENET / DEVOS / FDSOURCE.ARC / h / driver next >
Text File  |  1996-01-30  |  4KB  |  88 lines

  1. /*                  _____________________________________________
  2.                   [>                                             <]
  3. Project           [> ARCterm VII                                 <]
  4. Author            [> Hugo Fiennes                                <]
  5. Date started      [> 05-March-1990                               <]
  6.                   [>                                             <]
  7. Module name       [> Driver calls                                <]
  8. Current version   [> 00.04                                       <]
  9. Version date      [> 08-January-1993                             <]
  10. State             [> Unfinished                                  <]
  11.                   [>                                             <]
  12.                   [>   This source is COPYRIGHT © 1992/93 by     <]
  13.                   [>      Hugo Fiennes of The Serial Port        <]
  14.                   [>_____________________________________________<]
  15. */
  16.  
  17. extern int  (*driver)(int, ...);
  18. #ifndef DRIVER_C
  19. extern int (*driver_load(const char *name))(int, ...);
  20. #endif
  21.  
  22. typedef struct driver_s
  23.         {
  24.         int  entry[32];
  25.         char drv_info[32];
  26.         char man_info[32];
  27.         unsigned int v_minor :16, v_major :16;
  28.         unsigned int flags :24, ports :8;
  29.         int  number;
  30.         int  reserved[13];
  31.         int  speedtable[32];
  32.         } driver_t;
  33. extern driver_t *drv_info;
  34.  
  35. #define DRIVER_FLAGS_MULTI_PORT  0x00000001 /* More than one port availiable                 */
  36. #define DRIVER_FLAGS_SPLIT_RATE  0x00000002 /* Supports split rates                          */
  37. #define DRIVER_FLAGS_FIFO        0x00000004 /* Has >1 byte hardware FIFO                     */
  38. #define DRIVER_FLAGS_BREAK       0x00000008 /* Can use Set control lines to generate a break */
  39. #define DRIVER_FLAGS_POLL        0x00000010 /* Requires polling (by function 19)             */
  40. #define DRIVER_FLAGS_WONT_EMPTY  0x00000020 /* Won't empty (is a shared buffer)              */
  41. #define DRIVER_FLAGS_BLOCK       0x00000040 /* Supports block get/put operations             */
  42. #define DRIVER_FLAGS_NO_OVERLAP  0x00000080 /* Prefer not to overlap serial IO and disk IO   */
  43. #define DRIVER_FLAGS_INQUIRY     0x00000100 /* Supports inquiry initialise                   */
  44.  
  45. #define DRIVER_PUTBYTE        0
  46. #define DRIVER_GETBYTE        1
  47. #define DRIVER_PUTBLOCK       2
  48. #define DRIVER_GETBLOCK       3
  49. #define DRIVER_CHECKTX        4
  50. #define DRIVER_CHECKRX        5
  51. #define DRIVER_FLUSHTX        6
  52. #define DRIVER_FLUSHRX        7
  53. #define DRIVER_CONTROLLINES   8
  54. #define DRIVER_MODEMCONTROL   9
  55. #define DRIVER_RXERRORS      10
  56. #define DRIVER_BREAK         11
  57. #define DRIVER_EXAMINE       12
  58. #define DRIVER_TXSPEED       13
  59. #define DRIVER_RXSPEED       14
  60. #define DRIVER_WORDFORMAT    15
  61. #define DRIVER_FLOWCONTROL   16
  62. #define DRIVER_INITIALISE    17
  63. #define DRIVER_CLOSEDOWN     18
  64. #define DRIVER_POLL          19
  65. #define DRIVER_SELECT        20
  66.  
  67. #define driver_putbyte(p,c)     ((*driver)(DRIVER_PUTBYTE,p,c))
  68. #define driver_getbyte(p)       ((*driver)(DRIVER_GETBYTE,p))
  69. #define driver_putblock(p,b,n)  ((*driver)(DRIVER_PUTBLOCK,p,b,n))
  70. #define driver_getblock(p)      ((*driver)(DRIVER_GETBLOCK,p,b,n))
  71. #define driver_checktx(p)       ((*driver)(DRIVER_CHECKTX,p))
  72. #define driver_checkrx(p)       ((*driver)(DRIVER_CHECKRX,p))
  73. #define driver_flushtx(p)       ((*driver)(DRIVER_FLUSHTX,p))
  74. #define driver_flushrx(p)       ((*driver)(DRIVER_FLUSHRX,p))
  75. #define driver_controllines(p,s)((*driver)(DRIVER_CONTROLLINES,p,s))
  76. #define driver_modemcontrol(p)  ((*driver)(DRIVER_MODEMCONTROL,p))
  77. #define driver_rxerrors(p)      ((*driver)(DRIVER_RXERRORS,p))
  78. #define driver_break(p,cs)      ((*driver)(DRIVER_BREAK,p,cs))
  79. #define driver_examine(p)       ((*driver)(DRIVER_EXAMINE,p))
  80. #define driver_txspeed(p,tx)    ((*driver)(DRIVER_TXSPEED,p,tx))
  81. #define driver_rxspeed(p,rx)    ((*driver)(DRIVER_RXSPEED,p,rx))
  82. #define driver_wordformat(p,w)  ((*driver)(DRIVER_WORDFORMAT,p,w))
  83. #define driver_flowcontrol(p,f) ((*driver)(DRIVER_FLOWCONTROL,p,f))
  84. #define driver_initialise(p)    ((char *)(*driver)(DRIVER_INITIALISE,p))
  85. #define driver_closedown(p)     ((*driver)(DRIVER_CLOSEDOWN,p))
  86. #define driver_poll(p)          ((*driver)(DRIVER_POLL,p))
  87. #define driver_select(p)
  88.